# coding=utf-8

from pymongo import MongoClient
from bs4 import BeautifulSoup
import requests
import datetime
import pprint
import json
import time
import re

server_client = MongoClient('47.104.130.19', 27017)

server_db = server_client['knx_posts_db']
offical_posts_coll = server_db['offical_posts_coll']

class POST():
    def __init__(self):
        self.company = '奇虎360科技有限公司'
        self.url = "http://rms.chinahr.com/api/job/list"
        self.params = {
            'token':'c8ffee55-914c-46d2-a6ab-868951f15b61',
            'jobLabel':'5a572eb748aefc2028fc6ea9',
            'page':1,
            'pageSize':1000
        }
        self.data = {

        }

        self.scrapy()

    def scrapy(self):
        r = requests.get(self.url, params=self.params)
        j = r.json()
        for job in j['retMsg']:
            url = 'http://campus.chinahr.com/2018/qihu360/job_cur.html'
            name = job['name'].strip()
            description = job['jobDesc'].strip()
            location = job['address'].strip()
            count = job['recruitNumber'].strip()
            edu = job['education'].strip()
            # 转换成localtime
            time_local = time.localtime(job['createTime']/1000)
            # 转换成新的时间格式(2016-05-05 20:28:54)
            dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local)
            date = dt

            item = {
                "url": url, #jd详情页的地址
                'edu': edu, # 最低学历
                'exp': [], # 所需工作经验，比如[3, 5]表示3到5年, [3]表示3年，[]表示无经验要求
                'name': name , # 职位名称 *
                'date': date, # 职位发布日期，字符串形式即可，后期统一转换
                'lang': '', # 对语言的要求
                'place': '', # 办公具体地址
                'major': '', # 专业要求
                'count': count, # 招聘数量
                'salary': [], # 薪资待遇，[5000, 8000]表示月薪5到8千，[4000]表示4千，[]表示没有写明
                'toSchool': True, # 是否是面向校园招聘，本次官网抓取一律都是校园招聘，所以此处都是True
                'welfare': [], # 福利待遇，比如五险一金、十三薪之类的，保存成数组
                'funType': '', # 职能类型，比如证券经纪人是证券 / 期货 / 外汇经纪人
                'company': self.company, # 企业名称
                'location': location, # 所在城市
                'industry': 'IT互联科技行业', # 企业所在行业
                'keywords': job['jobLabel'], # 此岗位的搜索关键字
                'platform': 'offical', # 针对官网抓取时此处一律保存为offical
                'searchKeyword': '', # 搜索的关键字，由于是官网抓取所以此处一律为空字符串
                'description': description, # 职位的详细描述，包括职责、要求之类的
                'subIndustry': '', # 一律为空字符串
                'stime': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # 抓取时间
            }

            # if offical_posts_coll.insert(item):
            #     print('insert one job')
            pprint.pprint(item)

POST()
